package cn.bonoon.kernel.bytecode;

import cn.bonoon.kernel.query.Pageable;

/**
 * <pre>
 * 这个接口用于使用查询条件对象时，自动解析查询条件对象
 * 通过本接口向<code>Finder</code>添加查询语句和查询条件值
 * </pre>
 * @author jackson
 *
 */
public interface ASMQueryParser {
	
	void internalAnd(String pre, String name, String opt, Object value);

	void internalNull(String pre, String name);
	
	String internalJoin(String pre, String name, String alias);
	
	void initernalPageable(Pageable pageable);
	
	/**
	 * 返回"true"则认为该字段已经对某一个表达式进行赋值了，不再需要进行查询条件的解析了
	 * @param name
	 * @param value
	 * @param propertyNotMapped
	 * @return
	 */
	boolean internalChecked(String name, Object value, boolean propertyNotMapped);
	
	void internalOrder(String sn, String on);
}
